home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import sys
- from types import ModuleType
-
- class LazyModule(object):
-
- def __init__(self, name, locals):
- self._name = name
- self._locals = locals
- self._modname = '%s.%s' % (self._locals.get('__name__'), self._name)
-
-
- def __getattr__(self, attr):
- module = __import__(self._name, self._locals, { }, ' ')
- sys.modules[self._modname] = module
- if attr == '__members__':
- return dir(module)
- return getattr(module, attr)
-
-
-
- class _NotLoadedMarker:
- pass
-
- _marker = _NotLoadedMarker()
-
- class LazyDict(dict):
-
- def __init__(self, module):
- self._module = module
- dict.__init__(self)
-
-
- def __getitem__(self, name):
- print name
- return getattr(self._module, name)
-
-
-
- class LazyNamespace(ModuleType):
-
- def __init__(self, module, locals):
- ModuleType.__init__(self, locals['__name__'])
- self._imports = { }
- ns = self.__dict__
- ns.update(locals)
- ns['__module__'] = self
- lazy_symbols = { }
- for symbol in module._get_symbol_names():
- lazy_symbols[symbol] = ns[symbol] = _marker
-
- ns.update(__dict__ = LazyDict(self), __bases__ = (ModuleType,), add_submodule = self.add_submodule)
-
- def __getattribute__(_, name):
- v = ns.get(name, _marker)
- if v is not _marker:
- return v
- if name in lazy_symbols:
- s = module._get_symbol(ns, name)
- return s
- if name in self._imports:
- m = __import__(self._imports[name], { }, { }, ' ')
- ns[name] = m
- return m
- raise AttributeError(name)
-
- LazyNamespace.__getattribute__ = __getattribute__
-
-
- def add_submodule(self, name, importname):
- self._imports[name] = importname
-
-
-